﻿///*
// * 接口通用基类-用于Ajax请求获取json数据
// * 作者：平扬
// * 时间：2014-1-16
// * 版本：1.0.0.0
// * 
// */
//using System.Web;
//using System;
//using System.Web.SessionState;
 
//namespace JiuMeiMall.PMethod
//{
//    /// <summary>
//    /// 接口通用基类-用于Ajax请求获取json数据
//    /// </summary>
//    public abstract class HttpHandlerBase : IHttpHandler, IRequiresSessionState
//    {

//        #region 参数
//        /// <summary>
//        /// 签名值
//        /// </summary>
//        private string _sign = null;
//        protected string Sign
//        {
//            get
//            {
//                if (_sign == null)
//                    _sign = HttpPageHelper.RequestString("sign");
//                return _sign;
//            }
//        }
//        /// <summary>
//        /// jsonp验证格式
//        /// </summary>
//        private string _callback = null;
//        public string callback
//        {
//            get
//            {
//                if (_callback == null)
//                    _callback = HttpPageHelper.RequestString("_callback");
//                return _callback;
//            }
//        }
//        #endregion
       
//        #region IHttpHandler 成员
//        public bool IsReusable
//        {
//            get { return false; }
//        }

//        public void ProcessRequest(HttpContext context)
//        {
//            context.Response.ContentType = HttpPageHelper.AcceptTypesJson;
//            string returnStr = string.Empty;
//            try
//            {
//                string requesturl = context.Request.Url.ToString();
//                //防止用户直接访问URL
//                if (context.Request.UrlReferrer == null || requesturl.IndexOf(context.Request.UrlReferrer.Authority) == -1)
//                {
//                    return;
//                }

//                // 判断是否是jsonp格式
//                returnStr = !string.IsNullOrEmpty(callback) ? callback + "({0})" : "{0}";

//                object result = ProcessRequest();
//                // json序列化
//                if (result != null)
//                {
//                    returnStr = string.Format(returnStr, SerializeHelper.JsonSerializer(new JsonResult(true, "执行成功", result)), true);
//                }
//                else
//                {
//                    returnStr = string.Format(returnStr, SerializeHelper.JsonSerializer(new JsonResult(false, "执行失败", result)), true);
//                }

//            }
//            catch (Exception ex)
//            {
//                returnStr = string.Format(returnStr, SerializeHelper.JsonSerializer(new JsonResult(false, ex.Message, null)), false);
//            }
//            context.Response.Write(returnStr);
//        }
//        #endregion

//        /// <summary>
//        /// 执行方法
//        /// </summary>
//        /// <returns></returns>
//        public abstract object ProcessRequest(); 
 
//    }

//    #region JsonResult接口返回结果类

//    /// <summary>
//    /// 接口返回结果类(适用于ajax调用返回json)
//    /// </summary>
//    public class JsonResult
//    {
//        #region 【构造函数】
//        public JsonResult(bool _isok, string _message, object _data)
//        {
//            this.isok = _isok;
//            this.message = _message;
//            this.result = _data;
//        }
//        #endregion

//        /// <summary>
//        /// 返回成功与否
//        /// </summary>
//        public bool isok;
//        /// <summary>
//        /// 返回错误信息
//        /// </summary>
//        public string message;
//        /// <summary>
//        /// 数据信息
//        /// </summary>
//        public object result;
//    }
//     #endregion
//}